diff options
author | Jedrzej Nowacki <jedrzej.nowacki@nokia.com> | 2010-12-07 11:56:42 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-01-09 13:06:23 +0100 |
commit | 8e40e3c82e126e6c24644dd8d03fb23e4e98b71a (patch) | |
tree | 3034eba4ec8588a6295af19e2763eebda2b1bfa8 | |
parent | b9a880c228dc5049c4dd03839f052e91686a0dab (diff) |
[V8] QtScript/V8: Add new v8 api to check if a value is an error.
New function v8::Value::IsError was created.
This API is experimental and added only for the purposes of our
research.
Change-Id: Ie9c75681f956a43944c95737b8a2fb57a699df97
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
-rw-r--r-- | src/3rdparty/v8/include/v8.h | 5 | ||||
-rw-r--r-- | src/3rdparty/v8/src/api.cc | 6 | ||||
-rw-r--r-- | src/3rdparty/v8/src/heap.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/3rdparty/v8/include/v8.h b/src/3rdparty/v8/include/v8.h index 5f39a8d..f95e8b9 100644 --- a/src/3rdparty/v8/include/v8.h +++ b/src/3rdparty/v8/include/v8.h @@ -991,6 +991,11 @@ class Value : public Data { */ V8EXPORT bool IsRegExp() const; + /** + * Returns true if this value is an Error. + */ + V8EXPORT bool IsError() const; + V8EXPORT Local<Boolean> ToBoolean() const; V8EXPORT Local<Number> ToNumber() const; V8EXPORT Local<String> ToString() const; diff --git a/src/3rdparty/v8/src/api.cc b/src/3rdparty/v8/src/api.cc index feeac6f..ea3f59e 100644 --- a/src/3rdparty/v8/src/api.cc +++ b/src/3rdparty/v8/src/api.cc @@ -2424,6 +2424,12 @@ bool Value::IsRegExp() const { return obj->IsJSRegExp(); } +bool Value::IsError() const { + if (IsDeadCheck(i::Isolate::Current(), "v8::Value::IsError()")) return false; + i::Handle<i::Object> obj = Utils::OpenHandle(this); + return obj->HasSpecificClassOf(HEAP->Error_symbol()); +} + Local<String> Value::ToString() const { i::Handle<i::Object> obj = Utils::OpenHandle(this); diff --git a/src/3rdparty/v8/src/heap.h b/src/3rdparty/v8/src/heap.h index c089248..12cd295 100644 --- a/src/3rdparty/v8/src/heap.h +++ b/src/3rdparty/v8/src/heap.h @@ -203,6 +203,7 @@ namespace internal { V(string_symbol, "string") \ V(String_symbol, "String") \ V(Date_symbol, "Date") \ + V(Error_symbol, "Error") \ V(this_symbol, "this") \ V(to_string_symbol, "toString") \ V(char_at_symbol, "CharAt") \ |